package org.jeecgframework.web.system.pojo.base;

import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.persistence.*;
import javax.xml.soap.Text;
import java.sql.Blob;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.web.system.pojo.base.CbsEquipmentApplyDetailEntity;

/**
 * @author onlineGenerator
 * @version V1.0
 * @Title: Entity
 * @Description: 发货备件信息
 * @date 2018-01-29 14:23:15
 */
@Entity
@Table(name = "cbs_deliver_equipment", schema = "")
@SuppressWarnings("serial")
public class CbsDeliverEquipmentEntity implements java.io.Serializable {
    /**
     * 主键
     */
    private String id;
    /**
     * 发货单ID
     */
    @Excel(name = "发货单ID")
    private CbsDelinerEntity deliverId;
    /**
     * 申请的备件明细ID
     */
    @Excel(name = "申请的备件明细ID")
    private CbsEquipmentApplyDetailEntity equipmentApplyDetailId;
    /**
     * 备件类型ID
     */
    @Excel(name = "备件类型ID")
    private ZyEquipmentTypeEntity typeId;
    /**
     * 备件类型名称
     */
    @Excel(name = "备件类型名称")
    private String typeDes;
    /**
     * 备件号ID
     */
    @Excel(name = "备件号ID")
    private ZyEsItemEntity itemId;
    /**
     * 备件号名称
     */
    @Excel(name = "备件号名称")
    private String item;
    /**
     * 备件序列号SN
     */
    @Excel(name = "备件序列号SN")
    private String sn;
    /**
     * 数量
     */
    @Excel(name = "数量")
    private Integer total;
    /**
     * 申请优先级
     */
    @Excel(name = "申请优先级")
    private Integer applyLayer;
    /**
     * 是否返回
     */
    @Excel(name = "是否返回")
    private Integer isReturn;//1_否，2_是
    /**
     * 备件说明
     */
    @Excel(name = "备件说明")
    private String memo;
    /**
     * 物流选的备件库位
     */
    @Excel(name = "库位")
    private String wLocaltion;
    /**
     * 物流单号
     */
    @Excel(name = "物流单号")
    private String logisticsNumber;
    /**
     * 重量
     */
    @Excel(name = "重量")
    private String weight;
    /**
     * 备件序列号
     */
    @Excel(name = "备件序列号")
    private String deliverSn;
    @Excel(name = "申请理由")
    private String applyReason;
    /**
     * 备件二维码
     */
    @Excel(name = "备件二维码")
    private String deliverErcode;
    /**
     * 创建人名称
     */
    private String createName;
    /**
     * 创建人登录名称
     */
    private String createBy;
    /**
     * 更新人名称
     */
    private String updateName;
    /**
     * 更新人登录名称
     */
    private String updateBy;
    /**
     * 创建日期
     */
    private Date createDate;
    /**
     * 更新日期
     */
    private Date updateDate;

    /*
     * 库位
     * */
    @Column(name = "WAREHOUSE_POSITION", nullable = true, length = 32)
    public String getwLocaltion() {
        return wLocaltion;
    }

    /*
     * 库位
     * */
    public void setwLocaltion(String wLocaltion) {
        this.wLocaltion = wLocaltion;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  主键
     */
    @Id
    @GeneratedValue(generator = "paymentableGenerator")
    @GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
    @Column(name = "ID", nullable = false, length = 36)
    public String getId() {
        return this.id;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  发货单ID
     */
    @JsonIgnore
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "DELIVER_ID", nullable = true)
    @NotFound(action = NotFoundAction.IGNORE)
    public CbsDelinerEntity getDeliverId() {
        return this.deliverId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  发货单ID
     */
    public void setDeliverId(CbsDelinerEntity deliverId) {
        this.deliverId = deliverId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  申请的备件明细ID
     */
    @OneToOne
    @JoinColumn(name = "EQUIPMENT_APPLY_DETAIL_ID")
    @JsonIgnore
    public CbsEquipmentApplyDetailEntity getEquipmentApplyDetailId() {
        return this.equipmentApplyDetailId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  申请的备件明细ID
     */
    public void setEquipmentApplyDetailId(CbsEquipmentApplyDetailEntity equipmentApplyDetailId) {
        this.equipmentApplyDetailId = equipmentApplyDetailId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件类型ID
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "TYPE_ID")
    @JsonIgnore
    public ZyEquipmentTypeEntity getTypeId() {
        return this.typeId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件类型ID
     */
    public void setTypeId(ZyEquipmentTypeEntity typeId) {
        this.typeId = typeId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件类型名称
     */
    @Column(name = "TYPE_DES", nullable = true, length = 36)
    public String getTypeDes() {
        return this.typeDes;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件类型名称
     */
    public void setTypeDes(String typeDes) {
        this.typeDes = typeDes;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件号ID
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "ITEM_ID")
    @JsonIgnore
    public ZyEsItemEntity getItemId() {
        return this.itemId;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件号ID
     */
    public void setItemId(ZyEsItemEntity itemId) {
        this.itemId = itemId;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件号名称
     */
    @Column(name = "ITEM", nullable = true, length = 36)
    public String getItem() {
        return this.item;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件号名称
     */
    public void setItem(String item) {
        this.item = item;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  申请理由
     */
    @Column(name = "APPLY_REASON", nullable = true, length = 36)
    public String getApplyReason() {
        return applyReason;
    }

    public void setApplyReason(String applyReason) {
        this.applyReason = applyReason;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件序列号SN
     */
    @Column(name = "SN", nullable = true, length = 36)
    public String getSn() {
        return this.sn;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件序列号SN
     */
    public void setSn(String sn) {
        this.sn = sn;
    }

    /**
     * 方法: 取得java.lang.Integer
     *
     * @return: java.lang.Integer  数量
     */
    @Column(name = "TOTAL", nullable = true, length = 5)
    public Integer getTotal() {
        return this.total;
    }

    /**
     * 方法: 设置java.lang.Integer
     *
     * @param: java.lang.Integer  数量
     */
    public void setTotal(Integer total) {
        this.total = total;
    }

    /**
     * 方法: 取得java.lang.Integer
     *
     * @return: java.lang.Integer  申请优先级
     */
    @Column(name = "APPLY_LAYER", nullable = true, length = 1)
    public Integer getApplyLayer() {
        return this.applyLayer;
    }

    /**
     * 方法: 设置java.lang.Integer
     *
     * @param: java.lang.Integer  申请优先级
     */
    public void setApplyLayer(Integer applyLayer) {
        this.applyLayer = applyLayer;
    }

    /**
     * 方法: 取得java.lang.Integer
     *
     * @return: java.lang.Integer  是否返回
     */
    @Column(name = "IS_RETURN", nullable = true, length = 1)
    public Integer getIsReturn() {
        return this.isReturn;
    }

    /**
     * 方法: 设置java.lang.Integer
     *
     * @param: java.lang.Integer  是否返回
     */
    public void setIsReturn(Integer isReturn) {
        this.isReturn = isReturn;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  备件说明
     */
    @Column(name = "MEMO", nullable = true, length = 200)
    public String getMemo() {
        return this.memo;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  备件说明
     */
    public void setMemo(String memo) {
        this.memo = memo;
    }

    /**
     * 物流单号
     */
    @Column(name = "LOGISTICS_NUMBER", nullable = true, length = 50)
    public String getLogisticsNumber() {
        return logisticsNumber;
    }

    public void setLogisticsNumber(String logisticsNumber) {
        this.logisticsNumber = logisticsNumber;
    }

    /**
     * 重量
     */
    @Column(name = "WEIGHT", nullable = true, length = 50)
    public String getWeight() {
        return weight;
    }

    /**
     * 备件序列号
     */
    public void setWeight(String weight) {
        this.weight = weight;
    }

    @Column(name = "DELIVER_SN", nullable = true, length = 50)
    public String getDeliverSn() {
        return deliverSn;
    }

    public void setDeliverSn(String deliverSn) {
        this.deliverSn = deliverSn;
    }

    /**
     * 备件二维码
     */
    @Column(name = "DELIVER_ERCODE", nullable = true, length = 50)
    public String getDeliverErcode() {
        return deliverErcode;
    }

    public void setDeliverErcode(String deliverErcode) {
        this.deliverErcode = deliverErcode;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  创建人名称
     */
    @Column(name = "CREATE_NAME", nullable = true, length = 50)
    public String getCreateName() {
        return this.createName;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  创建人名称
     */
    public void setCreateName(String createName) {
        this.createName = createName;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  创建人登录名称
     */
    @Column(name = "CREATE_BY", nullable = true, length = 50)
    public String getCreateBy() {
        return this.createBy;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  创建人登录名称
     */
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  更新人名称
     */
    @Column(name = "UPDATE_NAME", nullable = true, length = 50)
    public String getUpdateName() {
        return this.updateName;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  更新人名称
     */
    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    /**
     * 方法: 取得java.lang.String
     *
     * @return: java.lang.String  更新人登录名称
     */
    @Column(name = "UPDATE_BY", nullable = true, length = 50)
    public String getUpdateBy() {
        return this.updateBy;
    }

    /**
     * 方法: 设置java.lang.String
     *
     * @param: java.lang.String  更新人登录名称
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 方法: 取得java.util.Date
     *
     * @return: java.util.Date  创建日期
     */
    @Column(name = "CREATE_DATE", nullable = true, length = 20)
    public Date getCreateDate() {
        return this.createDate;
    }

    /**
     * 方法: 设置java.util.Date
     *
     * @param: java.util.Date  创建日期
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * 方法: 取得java.util.Date
     *
     * @return: java.util.Date  更新日期
     */
    @Column(name = "UPDATE_DATE", nullable = true, length = 20)
    public Date getUpdateDate() {
        return this.updateDate;
    }

    /**
     * 方法: 设置java.util.Date
     *
     * @param: java.util.Date  更新日期
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }
}
